// Shader Global Variable
// (c) jimon game studio

#ifndef JEH_ISHADERGLOBALVARIABLE
#define JEH_ISHADERGLOBALVARIABLE

#include "IShaderVariable.h"

namespace je
{
	namespace video
	{
		//! Shader Global Variable
		class IShaderGlobalVariable:public je::video::IShaderVariable
		{
		public:
			//! Destructor
			virtual ~IShaderGlobalVariable()
			{
			}

			//! Remove Void Shader Variables
			virtual void RemoveVoidShaderVariables() = 0;

			//! Set Ignore Void Shader Variables
			virtual void SetIgnoreVoidShaderVariables(u1 Enable) = 0;

			//! Is Ignore Void Shader Variables
			virtual u1 IsIgnoreVoidShaderVariables() = 0;

			//! Shaders Variables List Type
			typedef jeDynamicArray<IShaderVariable*> ShadersVariablesListType;

			//! Get Variables List
			virtual ShadersVariablesListType * GetVariablesList() = 0;
		};
	}
}

#endif
